今年我在做一個自己的 side project —— QueryPal。
它的目標很單純:
給我一個網頁介面,讓我可以更輕鬆地操作 Azure Cosmos DB (MongoDB API),不需要每次都手動打 Mongo Shell 或寫 Python 腳本。
整個軟體是用 FastAPI 後端 + React 前端建成的,後端負責跟 Azure 認證、資料查詢、結構探索,前端則提供一個乾淨的 UI 讓我操作。
簡易後端架構
我平常開發會用 GitHub Copilot 或最近在試的 Kiro,它們都很擅長幫我寫程式碼,但當我想要讓 AI 直接使用我自己寫的 API endpoint 來做事時,就碰到了一個問題……
假設我希望 Copilot Chat 幫我查詢 Cosmos DB 某個 collection 的結構資訊。
理論上它可以直接呼叫我的後端 API,但在現實中會卡在好幾關:
結果就是,我得花很多時間教 AI 要打哪個 API、要傳什麼參數、token 怎麼拿。
這個過程不但麻煩,而且重複性極高。
我希望有這樣的開發體驗:
Show me the structure of the 'users' collection in Cosmos DB.
這時候我就開始找解法,而解答就是 MCP (Model Context Protocol)。
這篇不是 MCP 教學(之後我會專門寫一篇更詳細的 MCP 介紹),所以我先用一句話介紹它:
MCP 是一個讓 AI Agent 能夠「自動發現、理解並調用」你提供的功能(工具)的協議。
它的特點是:
換句話說,只要我把 QueryPal 的核心功能用 MCP 封裝好,任何支援 MCP 的 AI(像 GitHub Copilot、Kiro)就能「像使用內建功能一樣」使用它。
延伸MCP之後的後端架構
既然我的後端已經是 FastAPI,那我自然選擇了這個開源套件:fastapi_mcp。
它最大的優點是:
下一篇,我會解析什麼是MCP以及其中的有哪些重要的概念,然後再進入實作